/**
 * 检查wangEditor编辑器内容是否为空
 * @param html 编辑器HTML内容
 * @returns 是否为空
 */
export const isWangEditorEmpty = (html: string | null | undefined): boolean => {
  if (!html || html.trim() === '') return true;
  
  const trimmedHtml = html.trim();
  
  // 检查是否只包含wangEditor的默认空标签
  const emptyPatterns = [
    '<p><br></p>',
    '<p></p>',
    '<p><br/></p>',
    '<div><br></div>',
    '<div></div>',
    '<p>&nbsp;</p>',
    '<div>&nbsp;</div>'
  ];
  
  return emptyPatterns.includes(trimmedHtml);
};

/**
 * 清理wangEditor的空内容，如果是空内容则返回空字符串
 * @param html 编辑器HTML内容
 * @returns 清理后的内容
 */
export const cleanWangEditorContent = (html: string | null | undefined): string => {
  return isWangEditorEmpty(html) ? '' : (html || '');
};

/**
 * 为wangEditor准备内容，如果是空字符串则返回默认空标签
 * @param content 内容
 * @returns 准备好的内容
 */
export const prepareWangEditorContent = (content: string | null | undefined): string => {
  return (!content || content.trim() === '') ? '<p><br></p>' : content;
};

/**
 * 获取富文本编辑器内容的HTML长度（包含标签）
 * @param html 编辑器HTML内容
 * @returns HTML内容字符长度
 */
export const getWangEditorTextLength = (html: string | null | undefined): number => {
  if (!html || html.trim() === '' || isWangEditorEmpty(html)) {
    return 0;
  }

  // 直接返回HTML内容的字符长度
  return html.trim().length;
};
